package lib

import (
	"crypto/md5"
	"fmt"
	"github.com/gin-contrib/sessions"
	"github.com/gin-gonic/gin"
	"io"
	"strconv"
	"time"
)

// md5加密
func Md5(str string) string {
	h := md5.New()
	io.WriteString(h, str)
	return fmt.Sprintf("%x", h.Sum(nil))
}

// 获取时间戳
func GetUnix() int64 {
	return time.Now().Unix()
}

// 表示把string转换int
func Int(str string) (int, error) {
	n, err := strconv.Atoi(str)
	return n, err
}

// 表示把int转换成string
func String(n int) string {
	str := strconv.Itoa(n)
	return str
}

// 时间戳转换成日期
func UnixToTime(timestamp int) string {
	t := time.Unix(int64(timestamp), 0)
	return t.Format("2006-01-02 15:04:05")
}

// 根据key值获取session的value值
func GetSessionInfo(key string, c *gin.Context) string {
	if key == "" {
		return ""
	}
	//获取userinfo对应的session
	session := sessions.Default(c)
	info := session.Get(key)
	//类型断言 来判断 userinfo是不是一个string
	infoStr, ok := info.(string)
	if ok {
		return infoStr
	}
	return ""
}
